package control;

import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.service.AssetService;
import model.vo.AssetBaseVO;
import model.vo.AssetImpotantVO;
import model.vo.AssetListVO;
import model.vo.AssetScVO;
import model.vo.JobProcessVO;
import model.vo.OptinfoVO;
import model.vo.PyungBaseVO;

import org.json.simple.JSONObject;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class AssetController extends MultiActionController {
	//보낼 액션 이름
	private String actionName="assetAction.do";
	private AssetService assetService;
	public void setAssetService(AssetService assetService) {
		this.assetService = assetService;
	}
	//[자산 평가 IPO]
	//1.카탈로그
	//(자산분류기준)
	//자산분류기준 페이지로 이동
	public ModelAndView assetBase(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//결과를 리스트에 담음
		List list=assetService.assetBase();
		//리스트라는 객체에 list를 담아 보넴(request.setAttribute와 동일)
		mv.addObject("list",list);
		//페이지 이동(tiles_definition.xml에서 assetBase를 읽어 다른곳으로 이동
		mv.setViewName("assetBase");
		return mv;
	}
	//자산 분류 기준 등록 페이지
	public ModelAndView assetBase_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//최대 순번 구해오기
		int maxNo=assetService.maxNo("assetBase_maxNo");
		mv.addObject("maxNo",maxNo);
		mv.setViewName("assetBase_cont");
		return mv;
	}
	//자산 분류 기준 등록
	public ModelAndView assetBase_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetBaseVO vo=new AssetBaseVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산 분류 기준 request값: "+vo);
		try{
			assetService.assetBase_insert(vo);
			//등록후 list 페이지로 이동
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetBase");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//자산 분류 기준  삭제
	public ModelAndView assetBase_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String assetNo[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(assetNo!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<assetNo.length;i++){
				System.out.println(assetNo[i]);
				//삭제
				//int asset_no=Integer.parseInt(assetNo[i]); //서비스단에서 인트로 바꿔줌 
				assetService.assetBase_delete(assetNo[i]);
			}
		}
		//삭제후 list 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetBase");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//자산 분류 기준  수정 페이지로 이동
	public ModelAndView assetBase_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//int asset_no=Integer.parseInt(request.getParameter("asset_no")); //서비스단에서 인트로 바꿔줌 
		AssetBaseVO vo=assetService.assetBase_updatePage(request.getParameter("asset_no"));
		System.out.println(vo);
		mv.addObject("update","Y");
		mv.addObject("vo",vo);
		mv.setViewName("assetBase_cont");
		return mv;
	}
	//자산 분류 기준  수정 assetBase_update
	public ModelAndView assetBase_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetBaseVO vo=new AssetBaseVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산 분류 기준 수정값 request값들: "+vo);
		assetService.assetBase_update(vo);
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetBase");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	
	
	//(업무프로세스)
	//업무프로세스 페이지로 이동
	public ModelAndView jobProcess(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		List list=assetService.jobProcess();
		mv.addObject("list",list);
		mv.setViewName("jobProcess");
		return mv;
	}
	//업무프로세스 등록 페이지
	public ModelAndView jobProcess_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//최대 순번 구해오기
		//int jobProcessMaxNo=assetService.jobProcessMaxNo();
		int maxNo=assetService.maxNo("jobProcess_maxNo");
		mv.addObject("maxNo",maxNo);
		mv.setViewName("jobProcess_cont");
		return mv;
	}
	//업무프로세스 등록
	public ModelAndView jobProcess_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		JobProcessVO vo=new JobProcessVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("업무프로세스 request값: "+vo);
		try{
			assetService.jobProcess_insert(vo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","jobProcess");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//업무프로세스  삭제
	public ModelAndView jobProcess_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String jobNo[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(jobNo!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<jobNo.length;i++){
				System.out.println(jobNo[i]);
				//삭제
				//int job_no=Integer.parseInt(jobNo[i]); //서비스단에서 인트로 바꿔줌 
				assetService.jobProcess_delete(jobNo[i]);
			}
		}
		//삭제후 업무프로세스 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","jobProcess");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//업무프로세스  수정 페이지로 이동
	public ModelAndView jobProcess_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//int job_no=Integer.parseInt(request.getParameter("job_no"));//서비스단에서 인트로 바꿔줌 
		JobProcessVO vo=assetService.jobProcess_updatePage(request.getParameter("job_no"));
		System.out.println(vo);
		mv.addObject("update","Y");
		mv.addObject("job_gubun",vo.getJob_gubun()); //업데이트에 사용
		mv.addObject("vo",vo);
		mv.setViewName("jobProcess_cont");
		return mv;
	}
	//업무프로세스 수정 
	public ModelAndView jobProcess_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		JobProcessVO vo=new JobProcessVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("업무프로세스 수정값 request값들: "+vo);
		assetService.jobProcess_update(vo);
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","jobProcess");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	
	
	
	
	
	//2.평가기준
	//(업무프로세스중요도)
	//업무프로세스중요도 페이지로 이동
	public ModelAndView pyungBase(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		List list=assetService.pyungBase();
		mv.addObject("list",list);
		mv.setViewName("pyungBase");
		return mv;
	}
	//업무프로세스중요도 등록 페이지
	public ModelAndView pyung_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//최대 순번 구해오기
		//int pyungMaxNo=assetService.pyungMaxNo();
		int maxNo=assetService.maxNo("pyung_maxNo");
		mv.addObject("maxNo",maxNo);
		mv.setViewName("pyung_cont");
		return mv;
	}
	//업무프로세스중요도 등록
	public ModelAndView pyung_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		PyungBaseVO vo=new PyungBaseVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("업무프로세스중요도 request값: "+vo);
		try{
			assetService.pyung_insert(vo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","pyungBase");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//업무프로세스중요도  삭제
	public ModelAndView pyung_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String pyungNo[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(pyungNo!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<pyungNo.length;i++){
				System.out.println(pyungNo[i]);
				//삭제
				//int job_no=Integer.parseInt(jobNo[i]); //서비스단에서 인트로 바꿔줌 
				assetService.pyung_delete(pyungNo[i]);
			}
		}
		//삭제후 업무프로세스중요도 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","pyungBase");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//업무프로세스 중요도 수정 페이지로 이동
	public ModelAndView pyung_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//int job_no=Integer.parseInt(request.getParameter("job_no"));//서비스단에서 인트로 바꿔줌 
		PyungBaseVO vo=assetService.pyung_updatePage(request.getParameter("no"));
		System.out.println(vo);
		mv.addObject("update","Y");
		mv.addObject("pyung",vo.getPyung()); //업데이트에 사용
		mv.addObject("vo", vo);
		mv.setViewName("pyung_cont");
		return mv;
	}
	//업무프로세스 중요도 수정 
	public ModelAndView pyung_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		PyungBaseVO vo=new PyungBaseVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("업무프로세스중요도 수정값 request값들: "+vo);
		assetService.pyung_update(vo);
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","pyungBase");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	
	
	//(자산중요도평가기준)
	//자산중요도평가기준 페이지로 이동
	public ModelAndView assetImpotant(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		List list=assetService.assetImpotant();
		mv.addObject("list",list);
		mv.setViewName("assetImpotant");
		return mv;
	}
	//자산중요도평가기준 등록 페이지
	public ModelAndView assetImpotant_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//최대 순번 구해오기
		//int assetResultMaxNo=assetService.assetResultMaxNo();
		//mv.addObject("impoNo",assetResultMaxNo);
		int maxNo=assetService.maxNo("assetImpotant_maxNo");
		mv.addObject("maxNo",maxNo);
		mv.setViewName("assetImpotant_cont");
		return mv;
	}
	//자산중요도평가기준 등록
	public ModelAndView assetImpotant_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetImpotantVO vo=new AssetImpotantVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산중요도평가기준 request값: "+vo);
		try{
			assetService.assetImpotant_insert(vo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetImpotant");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//자산중요도평가기준  삭제
	public ModelAndView assetImpotant_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String impoNo[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(impoNo!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<impoNo.length;i++){
				System.out.println(impoNo[i]);
				//삭제
				//int job_no=Integer.parseInt(jobNo[i]); //서비스단에서 인트로 바꿔줌 
				assetService.assetImpotant_delete(impoNo[i]);
			}
		}
		//삭제후 자산중요도평가기준 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetImpotant");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//자산중요도평가기준 수정 페이지로 이동
	public ModelAndView assetImpotant_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//int job_no=Integer.parseInt(request.getParameter("job_no"));//서비스단에서 인트로 바꿔줌 
		AssetImpotantVO vo=assetService.assetImpotant_updatePage(request.getParameter("impo_no"));
		System.out.println(vo);
		mv.addObject("update","Y");
		mv.addObject("vo", vo);
		mv.setViewName("assetImpotant_cont");
		return mv;
	}
	//자산중요도평가기준 수정 
	public ModelAndView assetImpotant_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetImpotantVO vo=new AssetImpotantVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산중요도평가기준 수정값 request값들: "+vo);
		assetService.assetImpotant_update(vo);
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetImpotant");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	
	//(자산보안등급평가)
	//자산보안등급평가 페이지로 이동
	public ModelAndView assetSecurity(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		/*구분값을 페이지에서 받거나, 이곳에서 입력해서 읽어옴.(보안 등급 페이지에서는
		구분값 1만 읽을것이기 때문에 따로 읽어오지 않고 직접 입력하겠음
		(여기서 값을 입력한 이유는 a 태그로 넘기면 get방식으로 넘어오기 때문에
		다른 값을 입력하여 볼수 있을지도 모르기때문에 직접 입력*/
		String gubun="1";
		List list=assetService.assetSecurity(gubun);
		mv.addObject("list",list);
		mv.setViewName("assetSecurity");
		return mv;
	}
	//자산보안등급평가 등록 페이지
	public ModelAndView assetSecurity_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//최대 순번 구해오기
		/*구분값을 페이지에서 받거나, 이곳에서 입력해서 읽어옴.(보안 등급 페이지에서는
		구분값 1만 읽을것이기 때문에 따로 읽어오지 않고 직접 입력하겠음
		(여기서 값을 입력한 이유는 a 태그로 넘기면 get방식으로 넘어오기 때문에
		다른 값을 입력하여 볼수 있을지도 모르기때문에 직접 입력
		(서비스단에서 해결)
		*/
		//String gubun="1";
		//int assetScMaxNo=assetService.assetScMaxNo(gubun);
		//mv.addObject("assetScNo",assetScMaxNo);
		int maxNo=assetService.maxNo("assetSecurity_maxNo");
		mv.addObject("maxNo",maxNo);
		mv.setViewName("assetSecurity_cont");
		return mv;
	}
	//자산보안등급평가 등록
	public ModelAndView assetSecurity_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetScVO vo=new AssetScVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산보안등급평가 request값: "+vo);
		try{
			assetService.assetSecurity_insert(vo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetSecurity");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//자산보안등급평가  삭제
	public ModelAndView assetSecurity_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String assetScNo[]=request.getParameterValues("check");
		//구분값을 폼의 히든값에 넣어서 보냄
		String gubun=request.getParameter("gubun");
		//체크 박스로 삭제
		if(assetScNo!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<assetScNo.length;i++){
				System.out.println(assetScNo[i]);
				//구분값 1로 설정
				//int job_no=Integer.parseInt(jobNo[i]); //서비스단에서 인트로 바꿔줌 
				//서비스단에서 vo에 새팅하여 vo를 사용
				assetService.assetSecurity_delete(assetScNo[i],gubun);
			}
		}
		//삭제후 자산보안등급평가 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetSecurity");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//자산보안등급평가 수정 페이지로 이동
	public ModelAndView assetSecurity_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//int job_no=Integer.parseInt(request.getParameter("job_no"));//서비스단에서 인트로 바꿔줌
		//구분값 입력
		String gubun="1";
		AssetScVO vo=assetService.assetSecurity_updatePage(request.getParameter("no"),gubun);
		System.out.println(vo);
		mv.addObject("update","Y");
		mv.addObject("vo", vo);
		mv.setViewName("assetSecurity_cont");
		return mv;
	}
	//자산보안등급평가 수정 
	public ModelAndView assetSecurity_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetScVO vo=new AssetScVO();
		//vo에 request값들은 담음
		bind(request, vo);
		System.out.println("자산보안등급평가 수정값 request값들: "+vo);
		assetService.assetSecurity_update(vo);
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetSecurity");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	
	
	//3.자산 식별 및 평가 
	//(자산 식별)
	//자산 식별 페이지로 이동
	public ModelAndView assetIdenty_list(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//자산 유형
		List assetBaseList=assetService.assetBase();
		mv.addObject("assetBaseList",assetBaseList);
		//자산 식별 목록 불러옴.
		AssetListVO vo=new AssetListVO();
		String asset_no=request.getParameter("asset_no");
		//request에 값이 있을시 자산 유형 별로 검색
		if(asset_no!=null){
			vo.setAsset_no(Integer.parseInt(asset_no));
		}
		//List list=assetService.assetIdenty_list(vo);
		List list=assetService.assetList(vo);
		mv.addObject("list",list);
		System.out.println("list:"+list);
		mv.setViewName("assetIdenty_list");
		return mv;
	}
	//자산 식별 등록 페이지
	public ModelAndView assetIdenty_insertPage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//자산 유형
		List assetBaseList=assetService.assetBase();
		mv.addObject("assetBaseList",assetBaseList);
		//프로세스 유형
		List jobProcessList=assetService.jobProcess();
		mv.addObject("jobProcessList",jobProcessList);
		mv.setViewName("assetIdenty_insert");
		return mv;
	}
	//자산 코드 유효성 검사(Ajax)
	public void searchAcd(HttpServletRequest request,HttpServletResponse response) throws Exception{
		//자산코드의 값을 euc-kr로 인코딩하여 받음
		//String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"euc-kr");
		//String a_cd= request.getParameter("a_cd");
		String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"UTF-8");
		System.out.println(a_cd);
		JSONObject obj=new JSONObject();
			boolean a_cdFlag = assetService.searchAcd(a_cd);
			if (a_cdFlag) {// a_cd가 있으면
				obj.put("a_cdFlag", "N");
				} else {// a_cd가  없으면
				obj.put("a_cdFlag", "Y");
			}
		PrintWriter out = response.getWriter();
		out.print(obj.toString());
	}	
	//자산 식별 등록
	public ModelAndView assetIdenty_insert(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetListVO avo=new AssetListVO();
		OptinfoVO ovo=new OptinfoVO();
		//vo에 request값들은 담음
		bind(request, avo);
		bind(request, ovo);
		System.out.println("자산 식별 request값: "+avo);
		System.out.println("자산 식별 option request값: "+ovo);
		try{
			assetService.assetIdenty_insert(avo);
			assetService.assetIdenty_insertOpt(ovo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetIdenty_list");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//자산 식별  삭제
	public ModelAndView assetIdentyDelete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String deleteA_cd[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(deleteA_cd!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<deleteA_cd.length;i++){
				System.out.println(deleteA_cd[i]);
				//삭제
				assetService.assetIdentyDelete(deleteA_cd[i]);
			}
		}
		//삭제후 자산중요도평가기준 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetIdenty_list");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	//자산 식별 수정 페이지로 이동
	public ModelAndView assetIdenty_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		mv.addObject("assetBaseList",assetService.assetBase());
		//프로세스 유형
		List jobProcessList=assetService.jobProcess();
		mv.addObject("jobProcessList",jobProcessList);
		//자산코드의 값을 euc-kr로 인코딩하여 받음
		//String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"euc-kr");
		//String a_cd= request.getParameter("a_cd");
		String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"UTF-8");
		System.out.println(a_cd);
		AssetListVO avo=assetService.assetIdenty_updatePage(a_cd);
		if(avo!=null){
		OptinfoVO ovo=assetService.assetIdentyOpt_updatePage(a_cd);
		mv.addObject("update","Y");
		mv.addObject("assetNo",avo.getAsset_no());
		mv.addObject("asset_kind",avo.getAsset_kind());
		mv.addObject("jobNo",avo.getJob_no());
		mv.addObject("avo", avo);
		mv.addObject("ovo", ovo);
		mv.setViewName("assetIdenty_insert");
		}else{
			//한글 에러로 제대로 못읽었을시 다시 리로딩 해주는 페이지
			mv.setViewName("reSend");
		}
		return mv;
	}
	//자산 식별 수정
	public ModelAndView assetIdenty_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetListVO avo=new AssetListVO();
		OptinfoVO ovo=new OptinfoVO();
		//vo에 request값들은 담음
		System.out.println(request.getParameter("a_pcnt"));
		bind(request, avo);
		bind(request, ovo);
		System.out.println("자산 식별 request값: "+avo);
		System.out.println("자산 식별 option request값: "+ovo);
		try{
			assetService.assetIdenty_update(avo);
			assetService.assetIdenty_updateOpt(ovo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetIdenty_list");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	
	
	
	//(자산 평가)
	//자산 평가 페이지로 이동
	public ModelAndView assetResult_list(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//자산 유형
		List assetBaseList=assetService.assetBase();
		mv.addObject("assetBaseList",assetBaseList);
		//자산 식별 목록 불러옴.
		AssetListVO vo=new AssetListVO();
		String asset_no=request.getParameter("asset_no");
		//request에 값이 있을시 자산 유형 별로 검색
		if(asset_no!=null){
			vo.setAsset_no(Integer.parseInt(asset_no));
		}
		//List list=assetService.assetResult_list(vo);
		List list=assetService.assetList(vo);
		mv.addObject("list",list);
		System.out.println("list:"+list);
		mv.setViewName("assetResult_list");
		return mv;
	}
	//자산 평가 수정 페이지로 이동
	public ModelAndView assetResult_updatePage(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		response.setContentType("text/html;charset=UTF-8");
		mv.addObject("assetBaseList",assetService.assetBase());
		//자산코드의 값을 euc-kr로 인코딩하여 받음
		//String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"euc-kr");
		String a_cd= request.getParameter("a_cd");
		//String a_cd= new String(request.getParameter("a_cd").getBytes("8859_1"),"UTF-8");
		System.out.println(a_cd);
		//기본 테이블 정보
		AssetListVO avo=assetService.assetResult_updatePage(a_cd);
		System.out.println("avo정보"+avo);
		//추가테이블 정보
		if(avo!=null){
		OptinfoVO ovo=assetService.assetIdentyOpt_updatePage(a_cd);
		mv.addObject("assetNo",avo.getAsset_no());
		mv.addObject("asset_kind",avo.getAsset_kind());
		mv.addObject("jobNo",avo.getJob_no());
		mv.addObject("jobProcess",avo.getJob_process());
		mv.addObject("avo", avo);
		mv.addObject("ovo", ovo);
		//평가 테이블 정보
		List scScoreList=assetService.sc_score();
		//11.3.14 내용 수정으로 인한 삭제
		//List jobScoreList=assetService.pyungBase();
		mv.addObject("scScoreList",scScoreList);
		//11.3.14 내용 수정으로 인한 삭제
		//mv.addObject("jobScoreList",jobScoreList);
		mv.setViewName("assetResult_insert");
		}else{
			//한글 에러로 제대로 못읽었을시 다시 리로딩 해주는 페이지
			mv.setViewName("reSend");
		}
		return mv;
	}
	//자산 등급 검사(Ajax)
	public void ciaKind(HttpServletRequest request,HttpServletResponse response) throws Exception{
		response.setContentType("text/html;charset=euc-kr");
		response.setHeader("Cache-Control", "no-cache");
		//float 타입으로 캐스팅
		//float assetScore = Float.parseFloat(request.getParameter("assetScore"));
		int sum=Integer.parseInt(request.getParameter("sum"));
		//System.out.println(assetScore);
		JSONObject obj=new JSONObject();
		//자산 중요도 평가 정보를 부름
		List ciaKindList=assetService.assetImpotant();
		//System.out.println("cia:"+ciaKindList.size());
		if(ciaKindList.size()!=0){
			for (int i = 0;i<ciaKindList.size();i++){
				AssetImpotantVO vo=(AssetImpotantVO)ciaKindList.get(i);
				float sScore=vo.getS_score();
				float lScore=vo.getL_score();
				//받아온 데이터가 시작보다 크거나 같고, 나중값+1 보다 작을때
				//if(sScore<=assetScore && assetScore<(lScore+1)){
				if(sScore<=sum && sum<(lScore+1)){
					//System.out.println(vo.getImpo_kind());
					//자산등급을 적어줌
					obj.put("ciaKind",vo.getImpo_kind());
				}
			}
		}else{
			obj.put("ciaKind","N");
		}
		PrintWriter out = response.getWriter();
		out.print(obj.toString());
	}	
	//자산 평가 수정
	public ModelAndView assetResult_update(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		AssetListVO avo=new AssetListVO();
		//vo에 request값들은 담음
		bind(request, avo);
		System.out.println("자산 식별 request값: "+avo);
		try{
			assetService.assetResult_update(avo);
			mv.addObject("actionName",actionName);
			mv.addObject("pageName","assetResult_list");
			mv.setViewName("insertAndDeleteResult");
		}catch (SQLException e) {//SQL에러시
			System.out.println(e.getMessage());
			mv.setViewName("failResult");
		}
		return mv;
	}
	//자산 평가  삭제
	public ModelAndView assetResult_delete(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		String deleteA_cd[]=request.getParameterValues("check");
		//체크 박스로 삭제
		if(deleteA_cd!=null){
			//체크된 것들의 value값을 받음
			for(int i=0;i<deleteA_cd.length;i++){
				System.out.println(deleteA_cd[i]);
				//삭제
				assetService.assetIdentyDelete(deleteA_cd[i]);
			}
		}
		//삭제후 자산중요도평가기준 페이지로 이동
		mv.addObject("actionName",actionName);
		mv.addObject("pageName","assetResult_list");
		mv.setViewName("insertAndDeleteResult");
		return mv;
	}
	
	
	
	//(자산 목록)
	//자산 목록 페이지로 이동
	public ModelAndView assetList(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//자산 유형
		List assetBaseList=assetService.assetBase();
		mv.addObject("assetBaseList",assetBaseList);
		//자산 목록 불러옴.
		AssetListVO vo=new AssetListVO();
		String asset_no=request.getParameter("asset_no");
		//request에 값이 있을시 자산 유형 별로 검색
		if(asset_no!=null){
			vo.setAsset_no(Integer.parseInt(asset_no));
		}
		List list=assetService.assetList(vo);
		mv.addObject("list",list);
		System.out.println("list:"+list);
		mv.setViewName("assetList");
		return mv;
	}
	
	
	//(자산 중요도 평과 결과)
	//자산 중요도 평과 결과 페이지로 이동
	public ModelAndView assetStatusResult(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView mv=new ModelAndView();
		//자산 유형
		List assetBaseList=assetService.assetBase();
		List ciaKindList=assetService.assetImpotant();
		//자산유형별로 리스트를 저장할 공간 생성(퍼센트를 계산한 값을 가지고있음)(서비스단에서 계산)
		ArrayList percentList=assetService.percenTageList(assetBaseList,ciaKindList);
		mv.addObject("percentList",percentList);
		mv.setViewName("assetStatusResult");
		return mv;
	}
}